package com.wx.mall.goods.service;


import com.wx.mall.goods.entity.Category;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wx.mall.goods.entity.CategoryVo;

import java.util.List;

/**
 * <p>
 * 商品分类表
 服务类
 * </p>
 *
 * @author j
 * @since 2020-03-15
 */
public interface ICategoryService extends IService<Category> {

    /**
     * 分页查询
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<Category> getListAll(Integer pageNum, Integer pageSize);

    /**
     * 根据父级id找到子级分类s
     * @param categoryParentId
     */
    List<Category> getChildrenAll(Integer pageNum, Integer pageSize,Integer  categoryParentId);

    /**
     * 根据级别查询并分页
     * @param categoryLevel 级别为数字
     * @return
     * */
    List<Category> getListByLevelPage(Integer pageNum, Integer pageSize,Integer categoryLevel);

    /**
     * 根据id查询
     * @param categoryId 主键id
     * @return
     */
    Category getListAllById(Integer  categoryId);

    /**
     * 根据id查询
     * @param categoryId 主键id
     * @return
     */
    List<Category> getListByParent(Integer  categoryId);

    /**
     * 根据id修改
     * @param category 实体类
     * @return 0为成功1为失败
     * */
    int updateParentId(Category category);

    /**
     * 根据id查找
     * @param categoryId id
     * @return 分类名称
     */
    String getCategoryName(Integer  categoryId);


    /**
     * 查找所有分类名
     *
     * @return 分类名称
     */
    List<String> getCategoryNameAll();

    /**
     * 查找所有分类
     *
     * @return 分类名称
     */
    List<Category> getCategoryAll();

    /**
     * 根据分类名查询
     *
     * @return
     */
    Category getCategoryValue(String categoryName);

    /**
     * 根据id查找
     * @param categoryId id
     * @return 级别
     */
    int getCategoryLevel(Integer  categoryId);

    /**
     *插入一条记录
     * @param category Entity实体类
     * @return      0为成功1为失败
     * */
    int setForm(Category category);

    /**
     * 根据级别查询
     * @param categoryLevel 级别为数字
     * @return
     * */
    List<Category> getListByLevel(Integer categoryLevel);

    /**
     * 升降序查询
     * @param Sort 0和1，0降1升
     * @return
     * */
    List<Category> getListBySort(Integer Sort);

    /**
     * 品牌分类-tree
     * @return
     */
    List<CategoryVo> tree();

    /**
     * 删除数据以及对相应的子类
     * @return
     */
   int deleteList(Integer categoryId);
}
